/*
 * 教材中的示例程序之完整版.
 * 书名：《编译原理基础》
 * 版次：第三版
 * 作者：王献青，张立勇，张淑平，刘坚
 * 出版社：西安电子科技大学出版社
 * 程序完成时间：2025.03
 */

//
// 文件内容：语法分析器+语义处理的简易测试程序
//
// 这个程序实际上是一个算术表达式计算器，
//   其实现策略是在教材3.4.5节给出的递归下降的语法分析器代码中增加：
// (1) 分析表达式的同时，构造其抽象语法树；
// (2) 每分析完一个表达式，则计算并输出表达式的值。
//

#include <stdio.h>

#include "semantics.h"

extern void parser_main();

const char * test_input =
        "1+2;\n"
        "a +\t2 * 3\n;"
        "(1+2)*3/(10-3 mod 2);"
        ;

int main() {

    set_trace(false);

    set_lexer_input(test_input);

    parser_main();
    return 0;
}
